package com.xin.data.simbapesa.base;

import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;

import androidx.annotation.NonNull;

import com.google.gson.JsonObject;
import com.xin.data.simbapesa.analysis.AnalysisUtil;
import com.xin.data.simbapesa.api.U;


public class BaseParams {

    @NonNull
    public static JsonObject getJsonObject(Context context, String path) {
        JsonObject json = new JsonObject();
        String androidId = AnalysisUtil.INSTANCE.androidId();
        String dvertId = AnalysisUtil.INSTANCE.advertId();
        String isLimitAdTrackingEnabled = AnalysisUtil.INSTANCE.advertEnabled();
        int versionCode = getVersion(context);
        json.addProperty("product", U.URL_PRODUCT);
        json.addProperty("token", U.URL_TOKEN);
        json.addProperty("apiVersion", "v3");
        json.addProperty("androidId", androidId);
        json.addProperty("advertId", dvertId);
        json.addProperty("aduid", dvertId);
        json.addProperty("aduidPath", androidId);
        json.addProperty("isLimitAdTrackingEnabled", isLimitAdTrackingEnabled);
        json.addProperty("userId", U.URL_USERID);
        json.addProperty("version", versionCode);
        json.addProperty("localTimestamp", String.valueOf(System.currentTimeMillis()));
        json.addProperty("path", path);
        return json;
    }

    @NonNull
    public static JsonObject getJsonObject(Context context, String path, String product, String token) {
        JsonObject json = new JsonObject();
        String androidId = AnalysisUtil.INSTANCE.androidId();
        String dvertId = AnalysisUtil.INSTANCE.advertId();
        String isLimitAdTrackingEnabled = AnalysisUtil.INSTANCE.advertEnabled();
        int versionCode = getVersion(context);
        json.addProperty("product", product);
        json.addProperty("token", token);
        json.addProperty("apiVersion", "v3");
        json.addProperty("androidId", androidId);
        json.addProperty("advertId", dvertId);
        json.addProperty("aduid", dvertId);
        json.addProperty("aduidPath", androidId);
        json.addProperty("isLimitAdTrackingEnabled", isLimitAdTrackingEnabled);
        json.addProperty("userId", U.URL_USERID);
        json.addProperty("version", versionCode);
        json.addProperty("path", path);
        return json;
    }


    public static int getVersion(Context context) {
        try {
            return context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionCode;
        } catch (PackageManager.NameNotFoundException e) {
            return 0;
        }
    }

    public static String getVersionName(Context context) {
        try {
            PackageManager pm = context.getPackageManager();
            PackageInfo info = pm.getPackageInfo(context.getPackageName(), 0);
            return info.versionName;
        } catch (PackageManager.NameNotFoundException e) {
            return "Unknown";
        }
    }


}
